package com.hrbu.ssm.conversion;

import org.springframework.core.convert.converter.Converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Pattern;


/**
 * @Description: 将字符串日期转换成日期类型的日期(注意 ： 一定要在Spring的配置文件中注册转换器)
 * @Author: tanyajun
 * @CreateTime: 2021/3/25
 * @Blog: https://tanyajun.top
 */
// 转换器
public class DateConverter implements Converter<String, Date> {
    @Override
    public Date convert(String s) {
        System.out.println(s);
        // 设定日期正则表达式
        String reg = "\\d{4}-\\d{2}-\\d{2}";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        try {
            if (Pattern.compile(reg).matcher(s).matches()) {
                // 如果符合此格式yyyy-MM-dd
                return format.parse(s);
            } else if (Pattern.compile("[0-9]*]").matcher(s).matches()) {
                // 验证是否是时间戳(仅包含数字)
                return new Date(Long.parseLong(s));
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}